code: public CompletableFuture<Map.Entry<ByteBuf, List<String>>> getKeysPaginated(String tableName, ByteBuf continuationToken, int limit) {
          log.trace("get keys paginated called for : {}", tableName);
  
          return withRetries(() -> 
                  segmentHelper.readTableKeys(tableName, limit, IteratorState.fromBytes(continuationToken), authToken.get(), RequestTag.NON_EXISTENT_ID),
                          () -> String.format("get keys paginated for table: %s", tableName))
                               .thenApplyAsync(result -> {
                                   List<String> items = result.getItems().stream().map(x -> new String(x.getKey(), Charsets.UTF_8))
                                                              .collect(Collectors.toList());
                                   log.trace("get keys paginated on table {} returned items {}", tableName, items);
                                   return new AbstractMap.SimpleEntry<>(result.getState().toBytes(), items);
                               }, executor);
      }
docs: Method to get paginated list of keys with a continuation token.
  @param tableName tableName
  @param continuationToken previous continuationToken
  @param limit limit on number of keys to retrieve
  @return CompletableFuture which when completed will have a list of keys of size less than or equal to limit and
  a new ContinutionToken.