def METHOD_NAME(cursor) -> List[Tuple[DbTableSchema, str]]:
    schemas: Dict = {}
    for row in cursor.fetchall():
        table_schema_name: str = row[_TABLE_SCHEMA]
        table_name: DbTableMeta = DbTableMeta(row[_TABLE_NAME])
        table_column: DbColumn = DbColumn(
            name=row[_COLUMN_NAME],
            type=row[_UDT_NAME],
            ordinal_position=row[_ORDINAL_POSITION],
        )
        try:
            table_database = row[_TABLE_DATABASE]
        except IndexError:
            table_database = None
        # Attempt to get table schema
        table_key = ".".join(
            filter(None, [table_database, table_schema_name, table_name.name])
        )
        # table_key: str = f"{table_schema_name}.{table_name}"
        table_schema: Optional[DbTableSchema]
        table_schema, _ = schemas.get(table_key) or (None, None)
        if table_schema:
            # Add column to existing table schema.
            schemas[table_key][0].columns.append(table_column)
        else:
            # Create new table schema with column.
            schemas[table_key] = (
                DbTableSchema(
                    schema_name=table_schema_name,
                    table_name=table_name,
                    columns=[table_column],
                ),
                table_database,
            )
    return list(schemas.values())