protected boolean internalFirst() throws SQLException {
        boolean ret = false;

        if (numRows > 0) {
            cursorPos = 1;
            if ((getShowDeleted() == false) && (rowDeleted() == true)) {
                ret = internalNext();
            } else {
                ret = true;
            }
        }

        if (ret == true)
            absolutePos = 1;
        else
            absolutePos = 0;

        return ret;
    }
Moves this <code>CachedRowSetImpl</code> object's cursor to the first
row and returns <code>true</code> if the operation is successful.
<P>
This method is called internally by the methods <code>first</code>,
<code>isFirst</code>, and <code>absolute</code>.
It in turn calls the method <code>internalNext</code> in order to
handle the case where the first row is a deleted row that is not visible.
<p>
This is a implementation only method and is not required as a standard
implementation of the <code>CachedRowSet</code> interface.

@return <code>true</code> if the cursor moved to the first row;
        <code>false</code> otherwise
@throws SQLException if an error occurs
src/main/java/org/replicadb/rowset/sun/rowset/CachedRowSetImpl.java