def METHOD_NAME(
    self,
    data_source: HubspotDataSource,
    permissions: dict | None = None,
    offset: int = 0,
    limit: int | None = None,
    get_row_count: bool | None = False,
) -> DataSlice:
    if limit is None:
        df = self._retrieve_data(data_source)[offset:].reset_index(drop=True)
    else:
        api = self._api_for_dataset(data_source.dataset)
        page_api = _page_api_for(api, data_source.dataset)
        results = []
        result_iterator = self._result_iterator(
            page_api, max_results=offset + (limit or 0), limit=limit
        )
        try:
            for _ in range(offset):
                next(result_iterator)
            results = list(result_iterator)
        except StopIteration:
            pass
        df = pd.DataFrame([r.to_dict() for r in results])
    return DataSlice(
        df=df,
        pagination_info=build_pagination_info(
            offset=offset, limit=limit, retrieved_rows=len(df), total_rows=None
        ),
    )