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