def METHOD_NAME(
    self,
) -> SqlExportResult:
    self.validate()
    blob = None
    if results_backend and self._query.results_key:
        logger.info(
            "Fetching CSV from results backend [%s]", self._query.results_key
        )
        blob = results_backend.get(self._query.results_key)
    if blob:
        logger.info("Decompressing")
        payload = utils.zlib_decompress(
            blob, decode=not results_backend_use_msgpack
        )
        obj = _deserialize_results_payload(
            payload, self._query, cast(bool, results_backend_use_msgpack)
        )
        df = pd.DataFrame(
            data=obj["data"],
            dtype=object,
            columns=[c["name"] for c in obj["columns"]],
        )
        logger.info("Using pandas to convert to CSV")
    else:
        logger.info("Running a query to turn into CSV")
        if self._query.select_sql:
            sql = self._query.select_sql
            limit = None
        else:
            sql = self._query.executed_sql
            limit = ParsedQuery(sql).limit
        if limit is not None and self._query.limiting_factor in {
            LimitingFactor.QUERY,
            LimitingFactor.DROPDOWN,
            LimitingFactor.QUERY_AND_DROPDOWN,
        }:
            # remove extra row from `increased_limit`
            limit -= 1
        df = self._query.database.get_df(sql, self._query.schema)[:limit]
    csv_data = csv.df_to_escaped_csv(df, index=False, **config["CSV_EXPORT"])
    return {
        "query": self._query,
        "count": len(df.index),
        "data": csv_data,
    }