docs: @Override
      public Record nextRecord() {
          Object[] next = iter.next();
          invokeListeners(next);
  
          URI location;
          try {
              location = new URI(conn.getMetaData().getURL());
          } catch (SQLException | URISyntaxException e) {
              throw new IllegalStateException("Could not get sql connection metadata", e);
          }
  
          List<Object> params = new ArrayList<>();
          if (metadataIndices != null) {
              for (int index : metadataIndices) {
                  params.add(next[index]);
              }
          }
          RecordMetaDataJdbc rmd = new RecordMetaDataJdbc(location, this.metadataQuery, params, getClass());
  
          return new org.datavec.api.records.impl.Record(toWritable(next), rmd);
      }