* @throws PersistitException
     */
    List<Version> unpackMvvVersions() throws PersistitException {
        final List<Version> versions = new ArrayList<Version>();
        MVV.VersionVisitor visitor = new MVV.VersionVisitor() {

            @Override
            public void sawVersion(long version, int valueOffset, int valueLength) {
                long tc = -1;

                try {
                    tc = _persistit.getTransactionIndex().commitStatus(version, TransactionStatus.UNCOMMITTED, 0);
                } catch (Exception e) {
                    tc = -1;
                }
                Value value = new Value(_persistit);
                value.ensureFit(valueLength);
                System.arraycopy(_bytes, valueOffset, value.getEncodedBytes(), 0, valueLength);
                value.setEncodedSize(valueLength);
                value.trim();
                versions.add(new Version(version, tc, value));
            }

            @Override
            public void init() throws PersistitException {

            }
        };
        MVV.visitAllVersions(visitor, getEncodedBytes(), 0, getEncodedSize());
        return versions;
    }