code: def _checkIfDatabaseIsEmpty(self, successHandler=None, failHandler=None):
          
          def failCallback(error):
              errorMessage = str(error)
              if isinstance(error, Failure):
                  errorMessage = error.getErrorMessage()
  
              if failHandler is not None:
                  reactor.callInThread(failHandler, errorMessage)
  
          def selectCallback(transaction, successHandler):
              querySelect = \
                  "SELECT `TABLE_NAME` " \
                  "FROM INFORMATION_SCHEMA.TABLES " \
                  "WHERE " \
                  "`TABLE_SCHEMA` = %s" \
                  ";"
  
              try:
                  transaction.execute(
                      querySelect,
                      (self.application.config["viper.mysql"]["name"],)
                  )
  
                  tables = transaction.fetchall()
              except Exception as e:
                  failCallback(e)
                  return
  
              if successHandler is not None:
                  reactor.callInThread(successHandler, len(tables) == 0)
  
          interaction = self.runInteraction(selectCallback, successHandler)
          interaction.addErrback(failCallback)
docs: Check if database contains any tables.
  
          :param successHandler: <function(<bool>)> method called if interrogation was successful where the first argument
                                  is a boolean flag specifying if the database is empty or not
          :param failHandler: <function(<str>)> method called if interrogation failed where the first argument is the
                                  error message
          :return: <void>