public void retrieve() {
    initGui();

    if (this.dbConnection == null) return;
    if (this.reader == null) return;
    if (this.isRetrieving) return;

    if (!WbSwingUtilities.isConnectionIdle(this, this.dbConnection)) return;

    try {
      this.reset();
      this.dbConnection.setBusy(true);
      this.isRetrieving = true;
      this.infoLabel.setText(ResourceMgr.getString("MsgRetrieving"));
      WbSwingUtilities.showWaitCursorOnWindow(this);

      DataStore ds = reader.getTriggers(currentCatalog, currentSchema);
      final DataStoreTableModel model = new DataStoreTableModel(ds);

      WbSwingUtilities.invoke(
          () -> {
            infoLabel.showObjectListInfo(model);
            triggerList.setModel(model, true);
          });
      shouldRetrieve = false;
    } catch (OutOfMemoryError mem) {
      WbManager.getInstance().showOutOfMemoryError();
    } catch (Throwable e) {
      LogMgr.logError("ProcedureListPanel.retrieve() thread", "Could not retrieve trigger list", e);
    } finally {
      this.isRetrieving = false;
      this.dbConnection.setBusy(false);
      WbSwingUtilities.showDefaultCursorOnWindow(this);
    }
  }