I will presume that since you are saying the attachment isn't a file on disk that you are storing the attchment in the Database. In that case the AttachmentBinaryHelper.GetAttachmentBinary() method should return the data since it just pulls the AttachmentBinary field from the database. However, if you have Kentico set to store files in the filesystem that routine would be looking there and hence why you might be getting a null result.
Since it should be in the database you should be able to get to the Binary data like this:
Guid attachmentGuid = document.GetGuidValue("FileAttachment", Guid.Empty);
var attachment = AttachmentInfoProvider.GetAttachments()
.TopN(1)
.WhereEquals("AttachmentGUID", attachmentGuid)
.BinaryData(true)
.FirstOrDefault<AttachmentInfo>();
byte[] binaryData = attachment.AttachmentBinary;