public ClusterUDTType getType(String clusterId, ClusterUDTTypeGetArgs args) {
        CqlSession session = cqlSessionFactory.get(clusterId);

        SimpleStatement statement = QueryBuilder
            .selectFrom(SYSTEM_SCHEMA.getKeyspaceName(), SYSTEM_SCHEMA_TYPES.getTableName())
            .all()
            .whereColumn(TABLES_KEYSPACE_NAME.getColumnName()).isEqualTo(bindMarker())
            .whereColumn(TYPES_TYPE_NAME.getColumnName()).isEqualTo(bindMarker())
            .build(args.getKeyspace(), args.getType())
            .setPageSize(1);

        ResultSet rs = session.execute(statement);

        return StreamSupport.stream(rs.spliterator(), false)
            .limit(1)
            .map(ClusterUDTType::from)
            .findFirst()
            .orElseThrow(() -> new ClusterUDTTypeNotFoundException(String.format("not exists udt type(%s) in keyspace(%s)", args.getType(), args.getKeyspace())));
    }
@Test
    void when_get_not_exists_udt_type_in_keyspace_throw_not_exists_exception() {
        // given
        ClusterUDTTypeGetArgs args = ClusterUDTTypeGetArgs.builder()
            .keyspace(keyspaceName)
            .type("not_exist_type")
            .build();

        // when
        assertThatThrownBy(() -> clusterUDTTypeGetCommander.getType(CLUSTER_ID, args))
            .isInstanceOf(ClusterUDTTypeNotFoundException.class);
    }