code: def Process(
        self, parser_mediator, cache=None, database=None, **unused_kwargs):
      
      if cache is None:
        raise ValueError('Missing cache value.')
  
      if database is None:
        raise ValueError('Missing database value.')
  
      # This will raise if unhandled keyword arguments are passed.
      super(SQLitePlugin, self).Process(parser_mediator)
  
      for query, callback_method in self.QUERIES:
        if parser_mediator.abort:
          break
  
        callback = getattr(self, callback_method, None)
        if callback is None:
          logger.warning(
              '[{0:s}] missing callback method: {1:s} for query: {2:s}'.format(
                  self.NAME, callback_method, query))
          continue
  
        self._ParseQuery(parser_mediator, database, query, callback, cache)
docs: Determine if this is the right plugin for this database.
  
      This function takes a SQLiteDatabase object and compares the list
      of required tables against the available tables in the database.
      If all the tables defined in REQUIRED_TABLES are present in the
      database then this plugin is considered to be the correct plugin
      and the function will return back a generator that yields event
      objects.
  
      Args:
        parser_mediator (ParserMediator): parser mediator.
        cache (Optional[SQLiteCache]): cache.
        database (Optional[SQLiteDatabase]): database.
  
      Raises:
        ValueError: If the database or cache value are missing.