code: func Recover(stor storage.Storage, o *opt.Options) (db *DB, err error) {
  	s, err := newSession(stor, o)
  	if err != nil {
  		return
  	}
  	defer func() {
  		if err != nil {
  			s.close()
  			s.release()
  		}
  	}()
  
  	err = recoverTable(s, o)
  	if err != nil {
  		return
  	}
  	return openDB(s)
  }
docs: // Recover recovers and opens a DB with missing or corrupted manifest files
  // for the given storage. It will ignore any manifest files, valid or not.
  // The DB must already exist or it will returns an error.
  // Also, Recover will ignore ErrorIfMissing and ErrorIfExist options.
  //
  // The returned DB instance is safe for concurrent use.
  // The DB must be closed after use, by calling Close method.