src/Extensions/GridFieldBetterButtonsItemRequest.php
public function recordIsPublished()
    {
        if (!$this->owner->record->checkVersioned()) {
            return false;
        }

        if (!$this->owner->record->isInDB()) {
            return false;
        }

        $baseClass = DataObject::getSchema()->baseDataClass($this->owner->record);
        $stageTable = DataObject::getSchema()->tableName($baseClass) . '_Live';

        return (bool) DB::query("SELECT \"ID\" FROM \"{$stageTable}\" WHERE \"ID\" = {$this->owner->record->ID}")
            ->value();
    }
public function recordIsPublished()
    {
        if (!$this->owner->record->checkVersioned()) {
            return false;
        }

        if (!$this->owner->record->isInDB()) {
            return false;
        }

        $baseClass = DataObject::getSchema()->baseDataClass($this->owner->record);
        $stageTable = DataObject::getSchema()->tableName($baseClass) . '_Live';

        return (bool) DB::query("SELECT \"ID\" FROM \"{$stageTable}\" WHERE \"ID\" = {$this->owner->record->ID}")
            ->value();
    }
Determines if the current record is published
@return boolean