public static IDictionary <string, object>[] FetchPaginated(this SqlBuilder sqlBuilder, BeanApi api, int pageNo, int perPage = 10, bool useCache = true, params object[] parameters) { var query = sqlBuilder.ToSql(); if (!query.StartsWith("SELECT")) { throw NotAnSqlQueryException.Create(); } var pagination = PrepareFetchedPagination(api, query, pageNo, perPage); var dbDetails = api.CreateDetails(); return(api.Rows(useCache, $"{query} {dbDetails.Paginate(pagination.CurrentPage, perPage)}", parameters)); }