code: public List<UDT> getUDTs(final String catalog, final String schemaPattern,
                               final String typeNamePattern, final int[] types)
              throws SQLException {
          final List<UDT> list = new ArrayList<>();
          try (ResultSet results = databaseMetadata.getUDTs(catalog, schemaPattern, typeNamePattern, types)) {
              if (results != null) {
                  bind(results, UDT.class, list);
              }
          }
          return list;
      }
docs: Invokes {@link DatabaseMetaData#getUDTs(java.lang.String, java.lang.String, java.lang.String, int[])} with given
  arguments and returns bound information.
  
  @param catalog         the value for {@code catalog} parameter.
  @param schemaPattern   the value for {@code schemaPattern} parameter
  @param typeNamePattern the value for {@code typeNamePattern} parameter.
  @param types           the value for {@code type} parameter
  @return a list of UDTs
  @throws SQLException if a database error occurs.