public Event getEvent(int dataBaseActionId, BaseComponentManager bcm) throws SQLException {
    if (this.database == null || !this.database.isOpen()) {
      try {
        this.database = (SQLiteDatabase) dataManager.getDatabaseHelper().openDatabaseConnection();
      } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }
    Event event = null;
    String sql =
        " SELECT generated_events.id, generated_events.event_id, generated_events.entity_id, generated_events.component_id, generated_events.time, "
            + " timeout, generated_events.event_type, description, synchronous "
            + " FROM generated_events, generated_actions, events "
            + " WHERE generated_actions.id = ? AND events.id = generated_events.event_id AND generated_actions.event_id = generated_events.id;";

    // consulta
    Cursor cursor = this.database.rawQuery(sql, new String[] {String.valueOf(dataBaseActionId)});

    if (cursor.moveToNext()) {
      for (ComponentManager cm : bcm.getComponentManagers()) {
        if (cursor.getInt(cursor.getColumnIndex("component_id")) == cm.getComponentId()) {
          event = new SystemEvent(cm);
        }
      }
      event.setId(cursor.getInt(cursor.getColumnIndex("event_id")));
      event.setDatabaseId(cursor.getInt(cursor.getColumnIndex("id")));
      event.setEventType(cursor.getInt(cursor.getColumnIndex("event_type")));
      event.setEntityId(cursor.getInt(cursor.getColumnIndex("entity_id")));
      event.setTime(new Date(cursor.getLong(cursor.getColumnIndex("time"))));
      event.setTimeout(cursor.getInt(cursor.getColumnIndex("timeout")));
      event.setName(cursor.getString(cursor.getColumnIndex("description")));
      event.setSynchronous(cursor.getInt(cursor.getColumnIndex("synchronous")) > 0);
    }
    if (!cursor.isClosed()) {
      cursor.close();
    }
    return event;
  }