private List<Log> listarLogsPorConsulta(String sql) throws DataException {
    List<Log> lista = new ArrayList<Log>();

    try {
      Statement s = BDUtil.getConexao().createStatement();
      ResultSet r = s.executeQuery(sql);

      while (r.next()) {
        Log l = new Log();

        l.setIdLog(r.getInt("idLog"));
        l.setChaveUnica(r.getString("chaveUnica"));
        int tipoOp = r.getInt("tipoOperacao");
        Log.TipoOperacao tipoOperacao = null;
        if (tipoOp == Log.TipoOperacao.CADASTRO.ordinal()) {
          tipoOperacao = Log.TipoOperacao.CADASTRO;
        } else if (tipoOp == Log.TipoOperacao.ALTERACAO.ordinal()) {
          tipoOperacao = Log.TipoOperacao.ALTERACAO;
        } else if (tipoOp == Log.TipoOperacao.DELECAO.ordinal()) {
          tipoOperacao = Log.TipoOperacao.DELECAO;
        } else if (tipoOp == Log.TipoOperacao.ADICAO_CANTOR_A_MUSICA.ordinal()) {
          tipoOperacao = Log.TipoOperacao.ADICAO_CANTOR_A_MUSICA;
        } else if (tipoOp == Log.TipoOperacao.ALTERACAO_ARQUIVO_MUSICA.ordinal()) {
          tipoOperacao = Log.TipoOperacao.ALTERACAO_ARQUIVO_MUSICA;
        }
        l.setTipoOperacao(tipoOperacao);
        l.setClasseObjeto(r.getString("classeObjeto"));
        l.setChaveUnicaObjeto(r.getString("chaveUnicaObjeto"));

        ByteArrayInputStream bais = new ByteArrayInputStream((byte[]) r.getObject("objeto"));
        ObjectInputStream ois;
        try {
          ois = new ObjectInputStream(bais);
          l.setObjeto(ois.readObject());
          ois.close();
          bais.close();
        } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        } catch (ClassNotFoundException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }

        l.setData(new Date(r.getTimestamp("data").getTime()));

        lista.add(l);
      }

      r.close();
      s.close();

      return lista;
    } catch (SQLException e) {
      e.printStackTrace();
      throw new DataException("Não foi possível realizar a operação");
    }
  }