public String getText(Object element, boolean forUI, boolean forTip) {
            Object cellValue = getCellValue(element, objectColumn, forUI);
            if (cellValue instanceof LazyValue) {
                cellValue = ((LazyValue) cellValue).value;
            }
            if (forUI && !sampleItems && renderer.isHyperlink(element, cellValue)) {
                return EMPTY_STRING; //$NON-NLS-1$
            }
            if (element instanceof ObjectsGroupingWrapper) {
                return CommonUtils.toString(cellValue);
            }
            final Object objectValue = getObjectValue((OBJECT_TYPE) element);
            if (objectValue == null) {
                // This may happen if list redraw happens during node dispose
                return EMPTY_STRING;
            }
            final ObjectPropertyDescriptor prop = getPropertyByObject(objectColumn, objectValue);
            if (prop != null) {
                if (forUI && cellValue instanceof Boolean) {
                    return EMPTY_STRING;
//                    BooleanRenderer.Style booleanStyle = BooleanRenderer.getDefaultStyle();
//                    if (forTip || !booleanStyle.isText()) {
//                        return EMPTY_STRING;
//                    }
//                    return booleanStyle.getText((Boolean) cellValue);
                }
                if (prop.isPassword() && cellValue instanceof String) {
                    return  CommonUtils.isEmpty((String) cellValue) ? EMPTY_STRING : "************";
                }
                return ObjectViewerRenderer.getCellString(cellValue, prop.isNameProperty());
            } else {
                return EMPTY_STRING;
            }
        }
Creates service for object loading.
@param forUpdate true if it is update/merge operation. I.e. existing object modifications should remain.
plugins/org.jkiss.dbeaver.ui.navigator/src/org/jkiss/dbeaver/ui/navigator/itemlist/ObjectListControl.java