public ResultSet getOriginal() throws SQLException {
        CachedRowSetImpl crs = new CachedRowSetImpl();
        crs.RowSetMD = RowSetMD;
        crs.numRows = numRows;
        crs.cursorPos = 0;

        // make sure we don't get someone playing with these
        // %%% is this now necessary ???
        //crs.setReader(null);
        //crs.setWriter(null);
        int colCount = RowSetMD.getColumnCount();
        Row orig;

        for (Iterator<?> i = rvh.iterator(); i.hasNext();) {
            orig = new Row(colCount, ((Row)i.next()).getOrigRow());
            crs.rvh.add(orig);
        }
        return (ResultSet)crs;
    }
Returns a result set containing the original value of the rowset. The
original value is the state of the <code>CachedRowSetImpl</code> after the
last population or synchronization (whichever occurred most recently) with
the data source.
<p>
The cursor is positioned before the first row in the result set.
Only rows contained in the result set returned by <code>getOriginal()</code>
are said to have an original value.

@return the original result set of the rowset
@throws SQLException if an error occurs produce the
          <code>ResultSet</code> object
src/main/java/org/replicadb/rowset/sun/rowset/CachedRowSetImpl.java