public CqlSessionSelectResults tableList(String clusterId, TableDTO.ClusterTableListArgs args) {
        CqlSession session = cqlSessionFactory.get(clusterId);

        SimpleStatement statement = ClusterUtils.getSchemaTables(session, args.getKeyspace())
            .all()
            .whereColumn(CassandraSystemTablesColumn.TABLES_KEYSPACE_NAME.getColumnName()).isEqualTo(bindMarker())
            .build()
            .setPageSize(args.getPageSize())
            .setTimeout(Duration.ofSeconds(3))
            .setPagingState(StringUtils.isNotBlank(args.getCursor()) ? Bytes.fromHexString(args.getCursor()) : null);

        PreparedStatement preparedStatement = session.prepare(statement);

        ResultSet resultSet = session.execute(preparedStatement.bind(args.getKeyspace()));

        return CqlSessionSelectResults.of(
            convertRows(session, resultSet),
            CassdioColumnDefinition.makes(resultSet.getColumnDefinitions()),
            resultSet.getExecutionInfo().getPagingState()
        );
    }
@Test
    void listTables_with_limit() {
        // given
        TableDTO.ClusterTableListArgs args = TableDTO.ClusterTableListArgs.builder()
            .keyspace(keyspaceName)
            .pageSize(1)
            .build();

        // when
        CqlSessionSelectResults sut = clusterTableListCommander.tableList(CLUSTER_ID, args);

        // then
        assertThat(sut).isNotNull();
        assertThat(sut.getRows()).hasSize(1);
//        assertThat(sut.getTables()).hasSize(1);
//        assertThat(sut.getTables().getFirst().getTableName()).isEqualTo("test_table_1");
//        assertThat(sut.getTables().getFirst().getComment()).isEqualTo("test_table_one");
//        assertThat(sut.getTables().getFirst().getOptions()).containsEntry("bloom_filter_fp_chance", 0.01);
//        assertThat(sut.getNextPageState()).isNotBlank();
    }