docs: public ResultSet getFunctions(String catalog, String schemaPattern,
                                    String functionNamePattern) throws SQLException {
          ResultSet rset;
  
          try {
              rset = mDataImpl.getFunctions(catalog, schemaPattern, functionNamePattern);
          } catch (SQLException sqlX) {
              FFDCFilter.processException(
                                          sqlX, getClass().getName() + ".getFunctions", "759", this);
              throw WSJdbcUtil.mapException(this, sqlX);
          } catch (NullPointerException nullX) {
              // No FFDC code needed; we might be closed.
              throw runtimeXIfNotClosed(nullX);
          } catch (AbstractMethodError methError) {
              // No FFDC code needed; wrong JDBC level.
              throw AdapterUtil.notSupportedX("DatabaseMetaData.getFunctions", methError);
          } catch (RuntimeException runX) {
              FFDCFilter.processException(
                                          runX, getClass().getName() + ".getFunctions", "942", this);
              if (tc.isDebugEnabled())
                  Tr.debug(this, tc, "getFunctions", runX);
              throw runX;
          } catch (Error err) {
              FFDCFilter.processException(
                                          err, getClass().getName() + ".getFunctions", "949", this);
              if (tc.isDebugEnabled())
                  Tr.debug(this, tc, "getFunctions", err);
              throw err;
          }
  
          rset = ((WSJdbcConnection) parentWrapper).createResultSetWrapper(rset, this);
          childWrappers.add(rset);
          return rset;
      }