code: private Set<String> getBooleanConditions(List<Function> atoms, AliasIndex index) {
  		Set<String> conditions = new LinkedHashSet<>();
  		for (Function atom : atoms) {
  			if (atom.isOperation()) {  // Boolean expression
  				if (atom.getFunctionSymbol() == ExpressionOperation.AND) {
  					// flatten ANDs
  					for (Term t : atom.getTerms()) {
  						Set<String> arg = getBooleanConditions(ImmutableList.of((Function)t), index);
  						conditions.addAll(arg);
  					}
  				}
  				else {
  					String condition = getSQLCondition(atom, index);
  					conditions.add(condition);
  				}
  			}
  			else if (atom.isDataTypeFunction()) {
  				String condition = getSQLString(atom, index, false);
  				conditions.add(condition);
  			}
  		}
  		return conditions;
  	}
docs: Returns a string with boolean conditions formed with the boolean atoms
  found in the atoms list.