DBSchemaObject underlyingObject = getObject();
String parseRootId = getParseRootId();
if (parseRootId != null) {
DBLanguageDialect languageDialect = connectionHandler.getLanguageDialect(language);
if (languageDialect != null) {
DBLanguageFile file = (DBLanguageFile) languageDialect.getParserDefinition().createFile(fileViewProvider);
file.setParseRootId(parseRootId);
file.setUnderlyingObject(underlyingObject);
fileViewProvider.forceCachedPsi(file);
Document document = DocumentUtil.getDocument(fileViewProvider.getVirtualFile());
document.putUserData(FILE_KEY, getDatabaseFile());
PsiDocumentManagerImpl.cachePsi(document, file);
return file;