code: def refresh(self, executor, callbacks, completer_options=None):
          
          if completer_options is None:
              completer_options = {}
  
          if self.is_refreshing():
              self._restart_refresh.set()
              return [(None, None, None, 'Auto-completion refresh restarted.')]
          else:
              self._completer_thread = threading.Thread(
                  target=self._bg_refresh,
                  args=(executor, callbacks, completer_options),
                  name='completion_refresh')
              self._completer_thread.setDaemon(True)
              self._completer_thread.start()
              return [(None, None, None,
                       'Auto-completion refresh started in the background.')]
docs: Creates a SQLCompleter object and populates it with the relevant
          completion suggestions in a background thread.
  
          executor - SQLExecute object, used to extract the credentials to connect
                     to the database.
          callbacks - A function or a list of functions to call after the thread
                      has completed the refresh. The newly created completion
                      object will be passed in as an argument to each callback.
          completer_options - dict of options to pass to SQLCompleter.