def METHOD_NAME(self, database_name):
    schema = {}
    cursor = self._get_cursor()
    # load tables first, otherwise tables without columns are not showed
    cursor.tables(schema=database_name)
    for table in cursor:
        table_name = "{}.{}".format(table[1], table[2])
        if table_name not in schema:
            schema[table_name] = {"name": table_name, "columns": []}
    cursor.columns(schema=database_name)
    for column in cursor:
        table_name = "{}.{}".format(column[1], column[2])
        if table_name not in schema:
            schema[table_name] = {"name": table_name, "columns": []}
        schema[table_name]["columns"].append({"name": column[3], "type": column[5]})
    return list(schema.values())